//package com.example.myapplicationndk.netcancel;
//
//import android.annotation.TargetApi;
//import android.os.Build;
//import android.util.ArrayMap;
//
//import java.util.Set;
//
//import io.reactivex.Observable;
//import io.reactivex.schedulers.Schedulers;
//
//
//public class RxObservsableManagers  {
//
//    private static RxObservsableManagers sInstance = null;
//
//    private static ArrayMap<Object, Observable> maps =new ArrayMap<>();
//
//    public static RxObservsableManagers get() {
//
//        if (sInstance == null) {
//            synchronized (RxObservsableManagers.class) {
//                if (sInstance == null) {
//                    sInstance = new RxObservsableManagers();
//                }
//            }
//        }
//        return sInstance;
//    }
//
//
//    @TargetApi(Build.VERSION_CODES.KITKAT)
//    private RxObservsableManagers() {
//        maps = new ArrayMap<>();
//    }
//
//
//    public static Observable add(Object tag, Observable observable) {
//        maps.put(tag, observable);
//        return observable;
//    }
//
//
//    public static void remove(Object tag) {
//        if (!maps.isEmpty()) {
//            maps.remove(tag);
//        }
//    }
//
//
//    public  static void cancel(Object tag) {
//        if (maps.isEmpty()) {
//            return;
//        }
//
//        if (maps.get(tag) == null) {
//            return;
//        }
//        maps.get(tag).distinct().unsubscribeOn(Schedulers.io());
//        maps.remove(tag);
//    }
//
//    public static void cancelAll() {
//        if (maps.isEmpty()) {
//            return;
//        }
//        Set<Object> keys = maps.keySet();
//        for (Object apiKey : keys) {
//            cancel(apiKey);
//        }
//    }
//
//}